In a frequency hopping (or channel hopping) mesh network, devices communicate using different frequencies/channels at different times. To communicate a packet, a transmitter-receiver pair must be configured to the same channel during packet transmission. For a transmitter to communicate with a receiver at an arbitrary time in the future, the transmitter and receiver must synchronize to a channel schedule that specifies what channel to communicate on at what time. Channel schedules may be assigned to each transmitter-receiver pair independently so that neighboring transmitter-receiver pairs can communicate simultaneously on different channels. Alternatively, all devices in a network may synchronize with a single channel schedule such that all devices transmit and receive on the same channel at any time.
Ideally, independent but simultaneous transmitters would be configured to transmit on different channels. By utilizing different channels simultaneously, transmitters in close proximity avoid collisions, maximize channel capacity, and maximize the likelihood that the intended receiver(s) will properly receive the packet(s). To comply with United States FCC rules, the channel-hopping sequence must be a pseudo-random sequence and must not be coordinated across multiple devices. The former requirement implies that the sequence cannot be a simple, short repeated sequence (e.g. 1, 2, 3, . . . , N, 1, 2, 3, . . . , N). The latter requirement implies that devices cannot negotiate channel sequences that ensure no overlaps.
Adding to the challenge, low-power and lossy networks (LLNs) are typically composed of resource-constrained devices (e.g., limited memory, computation, energy, communication, etc.). Nodes within LLNs typically communicate over physical links that may have variable quality that could be affected by environmental conditions that change over time. Furthermore, LLN deployments can be both large and dense, such that LLN deployments can utilize 1000 to 5000 devices in a single network, and each LLN device may communicate with 100 or more neighbors.
Generally, the channel-hopping sequence should have a large period (i.e., large number of entries), otherwise it will not be considered pseudo-random. In some environments (e.g., due to limited memory and/or large numbers of neighbors), however, maintaining separate lists of channels for each neighbor may be infeasible.